﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace APILocawebGatewayUI.AMEX
{
    public sealed class AmexUtilidades
    {
        /// <summary>
        /// Retorna a mensagem referente ao status da transação
        /// </summary>
        /// <param name="status"></param>
        /// <returns></returns>
        internal static string PegaStatusTransacao(string status)
        {
            switch (status)
            {
                case "0":
                    return "Transação finalizada com Sucesso";
                case "1":
                    return "Erro desconhecido";
                case "2":
                    return "Transação recusada pelo Banco";
                case "3":
                    return "Nenhuma resposta do banco";
                case "4":
                    return "Cartão Expirado";
                case "5":
                    return "Saldo Insuficientes";
                case "6":
                    return "Erro ao comunicar-se com o banco, tente mais tarde";
                case "7":
                    return "Payment Server System Error";
                case "8":
                    return "Tipo Da Transação não suportado";
                case "9":
                    return "Transação recusado pelo banco (não contate o banco)";
                case "A":
                    return "Transação Abortada";
                case "C":
                    return "Transação Cancelada";
                case "D":
                    return "A transação aguardando processamento pelo Banco";
                case "F":
                    return "O VISA 3D Secure negou a autorização";
                case "I":
                    return "A verificação do código de segurança do cartão falhou";
                case "L":
                    return "Shopping Transaction Locked (Please try the transaction again later)";
                case "N":
                    return "Seu cartão não é registrado no VISA 3D Secure";
                case "P":
                    return "A transação foi recebida pelo gerenciador do pagamento e está sendo processada";
                case "R":
                    return "A transação não foi processada - limite de tentativas excedido";
                case "T":
                    return "A Verificação do Endereço Falhou";
                case "U":
                    return "O Código de Segurança do Cartão Falhou"; ;
                case "V":
                    return "O código da verificação do endereço e de segurança do cartão falhou";
                case "?":
                    return "O status da transação é desconhecido";
                default:
                    return "Indefinido";
            }
        }

        [Obsolete("O método Nucleo.Utilidades.FormatarValorMoedaParaFormulario pode ser usado de maneira geral")]
        public static String FormatarPreco(Decimal value)
        {

            return Nucleo.Utilidades.FormatarValorMoedaParaFormulario(value);
        }


    }
}